#封装内容
#定义工具类 获取浏览器驱动对象
import json
import time

from selenium import webdriver

    #定义一个获取弹出框中的信息 为什么不可以放在类里，哦 我想到了 因为这是什么，这是方法中的后置 所以单独放置
from selenium.webdriver.common.by import By


def get_msg():#注意在方法外定义是没self的
    time.sleep(2)#前置等待 2秒 为什么要强制等待 因为是从后台传入的 时间较长 要进行强制等待
    #driver从哪里来 从下面的方法中拿 那么要拿的话就要实例化

    #调用类中的方法 以获取driver  driver.get_driver()

    return util_devier.get_driver().find_element(By.CSS_SELECTOR,"LAYUE").text#通过类级别方法进行封装


class util_devier:
    _driver=None#初始化浏览器对象 为什么要初始化浏览器对象 因为你的浏览器对象是要调用的
    # 也就是每个方法 都有可能调用 那么你就会创建恒多个浏览器驱动 所以初始化一下 代码更加严谨一点 这
    #定义工具方法获取驱动的方法
    @classmethod#创建类级别的方法就可以不用创建对象 直接调用 怎么调用

    def get_driver(cls):#我的driver从测试用例中传送不香吗？
        if cls._driver is None:#字符要用is 不能用等于号 知道不

         cls.drvier=webdriver.Chrome()#C要大写 彩果的坑.
        cls.drvier.maximize_window()  # 窗口最大化
        cls.drvier.maximize_window(10)
        return cls.drvier#吗的 少了一个返回 你调用类的方法为什么不放回 不放回哪来的结果

    #定义一个退出的方法 想要退出直接调用就行
    @classmethod
    def out_driver(cls):
        if cls._driver is not None:
           cls.drvier.quit()
           cls._driver =None

def get_data_json(filename):
    with open(filename,encoding="utf-8") as f:#打开json文件位置
                case_date=json.load(f)#将json数据存放在case——data里面#打印的数据不是我想要的格式 ，所以怎么调节
                new_date=[]#创建新列表 调整格式data_driver/base_date/lgion_case_dat.json

                for case in case_date:
                    for x in case.values():
                        case_tuple=x.values()
                        new_date.append(tuple(case_tuple))
                print(new_date)#注意 为什么没有 对于列表 元祖 字典必须要将结果打印才能调用
                return new_date
get_data_json("data_driver/base_date/lgion_case_dat.json")






